home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok52
/
gadgeted
/
txt
/
gadgets.def
< prev
next >
Wrap
Text File
|
1993-11-04
|
13KB
|
295 lines
(*----------------------------------------------------------------------
:Program. Gadgets.def
:Contents. Aufbau und Verwaltung von Gadgets
:Author. Hubert Bildstein
:Address. Gehenbühlstr.5, W7000 Stuttgart 31, Germany
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.3d
:History. V1.0 6.12.1990
:Remark. Evtl. Namensgleichheit mit schon vorhandenen Modulen
:Remark. ist zufällig
----------------------------------------------------------------------*)
DEFINITION MODULE Gadgets;
(*--------------------------------------------------------------------------*)
(* Prozeduren zur Behandlung von String-, Boolean- und ProportionalGadgets *)
(* *)
(* Datum: 26.07.90 letzte Änderung: 06.12.1990 *)
(* Autor: Hubert Bildstein *)
(* Compiler: M2Amiga V3.3d *)
(*--------------------------------------------------------------------------*)
(* Anmerkungen:
------------
Zuallererst muß DefineWindow ausgeführt werden!
GadgetIDs müssen positiv ( >=0 )sein.
zu MakePropGadget: GadgetFlagSet wird auf {} gesetzt. Der Rahmen wird
automatisch gezeichnet, Änderung mit GadgetBorder und DeleteBorder
hat absolut keine Wirkung.
String- und Boolean-Gadgets werden ohne Rahmen und Text generiert. Dies
muß danach mit GadgetBorder und GadgetText erfolgen.
Um ein LONGINT-String-Gadget zu erzeugen, muß im ActivationFlagSet für
ein String-Gadget der Eintrag "longint" enthalten sein.
StringGadgets und Gadget-Texte sind auf 255 Zeichen beschränkt.
!! Wird einem Gadget, das bereits einen Text oder Rahmen besitzt, mit
GadgetText oder GadgetBorder erneut ein Text oder Rahmen zugewiesen
oder mit DeleteText oder DeleteBorder ein ebensolcher gelöscht,
so muß dieses Gadget von diesem Modul hier erstellt worden sein,
ansonsten kann das Programm abstürzen.
Wird ein Gadget mit DeleteGadget gelöscht, so muß es ebenfalls von
diesem Modul erstellt worden sein, sonst ist ein Absturz sicher!!
*)
FROM Intuition IMPORT GadgetPtr, WindowPtr, GadgetFlagSet,
ActivationFlagSet, IDCMPFlagSet;
TYPE PropType = (Horiz, Vert); (* Bestimmt Art der Prop.-Gadgets *)
PropTypeSet = SET OF PropType;
(*--------------------------------------------------------------------------*)
PROCEDURE DefineWindow (GWindow : WindowPtr);
(* Legt fest, auf welches Window sich die Gadget-Operationen beziehen sollen.
Bevor irgendeine andere Prozedur aufgerufen werden kann, muß das Window
hiermit festgelegt werden!
*)
(*--------------------------------------------------------------------------*)
PROCEDURE MakeStrGadget (VAR GPtr : GadgetPtr;
GadgID : INTEGER;
x, y : INTEGER;
w, h : INTEGER;
MaxChars : INTEGER;
Flags : GadgetFlagSet;
AFlags : ActivationFlagSet;
VAR ok : BOOLEAN);
(* Erstellen eines String-/Longint-Gadgets im angegebenen Window
Parameter: GPtr : GadgetPtr, wird zurückgegeben
GadgID : Nummer des Gadgets
x,y : Position des Gadgets im Window (in Pixel)
w : Breite " " "
h : Höhe " " "
MaxChars : Max. Anzahl der einzugebenden Zeichen
Flags : siehe Intuition
AFlags : " "
ok : TRUE : ok; FALSE : Fehler
Fehlerursachen: GadgID,x,y,w,h,MaxEingabe<0, kein Window def.
*)
(*--------------------------------------------------------------------------*)
PROCEDURE MakeBoolGadget (VAR GPtr : GadgetPtr;
GadgID : INTEGER;
x, y : INTEGER;
w, h : INTEGER;
Flags : GadgetFlagSet;
AFlags : ActivationFlagSet;
VAR ok : BOOLEAN);
(* Erstellen eines BooleanGadgets im angegebenen Window
Parameter: GPtr : GadgetPtr, wird zurückgegeben
GadgID : Nummer des Gadgets
x,y : Position des Gadgets im Window (in Pixel)
w : Breite " " "
h : Höhe " " "
Flags : siehe Intuition
AFlags : " "
ok : TRUE : ok; FALSE : Fehler
Fehlerursachen: GadgID,x,y,w,h<0, kein Window def.
*)
(*--------------------------------------------------------------------------*)
PROCEDURE MakePropGadget (VAR GPtr : GadgetPtr;
GadgID : INTEGER;
x, y : INTEGER;
w, h : INTEGER;
AFlags : ActivationFlagSet;
Type : PropTypeSet;
HSteps : CARDINAL;
VSteps : CARDINAL;
VAR ok : BOOLEAN);
(* Erzeugt ein Proportional-Gadget im angegebenen Window
Parameter: GPtr : GadgetPtr, wird zurückgegeben
GadgID : Nummer des Gadgets
x,y : Position des Gadgets im Window
w : Breite " "
h : Höhe " "
AFlags : siehe Intuition
Type : Vert : vertikal beweglich
Horiz : horizontal beweglich
beide gesetzt : 2-dimensional beweglich
HSteps : Gibt an, in wieviel Schritte die horizontale
Richtung unterteilt ist (2 .. 65535).
VSteps : wie oben, vertikal
Fehlerursachen: GadgID,x,y,w,h<0, Typ = {}, kein Window def.
*)
(*--------------------------------------------------------------------------*)
PROCEDURE DeleteGadget (VAR GPtr : GadgetPtr);
(* Löschen eines Gadgets aus der Windowliste und aus dem Speicher.
Neuaufbau des Fensters muß selbst erledigt werden.
!ACHTUNG! Das Gadget muß von diesem Modul erstellt worden sein,
sonst ist ein Absturz fast sicher!
Parameter: GPtr : Zeiger auf zu löschendes Gadget
*)
(*--------------------------------------------------------------------------*)
PROCEDURE WaitForGadget (VAR class : IDCMPFlagSet;
VAR ID : INTEGER;
VAR GPtr : GadgetPtr);
(* Warten auf Message vom Window, evtl. wird Nummer des aktivierten Gadgets
und der GadgetPtr zurückgegeben.
Parameter: class : gibt Art der Message zurück (z.B. für Auswertung
von closeWindow ...)
ID : Nummer des aktivierten Gadgets. Falls kein Gadget
aktiviert wurde, wird ID zu -1
GPtr : GadgetPtr des aktivierten Gadgets. NIL bei anderer
Message.
Bei Fehler ist class = {}
*)
(*--------------------------------------------------------------------------*)
PROCEDURE GadgetText (GPtr : GadgetPtr;
relX, relY : INTEGER;
Text : ARRAY OF CHAR;
fPen, bPen : INTEGER);
(* Fügt einem Gadget einen Text an. Ein evtl. vorher bestehender Text wird
dabei gelöscht.
Parameter: GPtr : Zeiger auf Gadget
relX, relY : Position des Textes rel. zum Gadget (in Pixel)
Text : Text
fPen, bPen : Vorder/ Hintergrundfarbe des Textes
Bei Fehler wird nichts ausgeführt, keine Rückmeldung
*)
(*--------------------------------------------------------------------------*)
PROCEDURE DeleteText (GPtr : GadgetPtr);
(* Löschen des Textes eines Gadgets und Freigabe des Speichers.
Parameter: GPtr : Zeiger auf Gadget
*)
(*--------------------------------------------------------------------------*)
PROCEDURE GadgetBorder (GPtr : GadgetPtr;
relX, relY : INTEGER;
w, h : INTEGER;
Double : BOOLEAN;
xDist, yDist : INTEGER;
Colour : INTEGER);
(* versieht Gadget mit einem einfachen/doppelten Rahmen.
Nicht für Proportional-Gadgets.
Parameter: GPtr : Zeiger auf Gadget
WPtr : " " Window
relX, relY : Pos. des Rahmens rel. zum Gadget (in Pixel)
w : Breite des Rahmens (in Pixel)
h : Höhe " " "
Double : TRUE = Doppelrahmen, FALSE = einfacher Rahmen
xDist, yDist : Falls Double = TRUE: Abstand zum zweiten Rahmen
sonst: keine Bedeutung
Colour : Farbe des Rahmens
Bei Fehler wird nichts ausgeführt, keine Rückmeldung
*)
(*--------------------------------------------------------------------------*)
PROCEDURE DeleteBorder (GPtr : GadgetPtr);
(* Löschen des Gadget-Rahmens und Freigabe dessen Speichers.
Nicht für Proportional-Gadgets.
Parameter: GPtr : Zeiger auf Gadget
*)
(*--------------------------------------------------------------------------*)
PROCEDURE ReadStrGadget ( GPtr : GadgetPtr;
VAR Str : ARRAY OF CHAR);
(* Liest das angegebenen StringGadget aus und gibt den Inhalt zurück
Parameter: GPtr : Zeiger auf Gadget
Str : Inhalt des StringGadgets
*)
(*--------------------------------------------------------------------------*)
PROCEDURE SetStrGadget (GPtr : GadgetPtr;
Buffer : ARRAY OF CHAR);
(* Belegt den Inhalt eines StringGadgets mit der angebenen Zeichenkette.
Parameter: GPtr : Zeiger auf Gadget
Buffer : neuer Inhalt
*)
(*--------------------------------------------------------------------------*)
PROCEDURE ReadLongint ( GPtr : GadgetPtr;
VAR Value : LONGINT);
(* Liest den Inhalt eines LONGINT-String-Gadgets aus.
Parameter: GPtr : Zeiger auf Gadget
Value : ausgelesener Wert
*)
(*--------------------------------------------------------------------------*)
PROCEDURE SetLongint (GPtr : GadgetPtr;
Value : LONGINT);
(* Setzt den Inhalt eines LONGINT-String-Gadgets auf den angegebenen Wert.
Parameter: GPtr : Zeiger auf Gadget
Value : Zu setzender Wert
*)
(*--------------------------------------------------------------------------*)
PROCEDURE ReadPropGadget ( GPtr : GadgetPtr;
VAR xValue : CARDINAL;
VAR yValue : CARDINAL);
(* Liest die Stellung der Schieberegler aus.
Parameter: GPtr : Zeiger auf PropGadget
xValue : Stellung des Gadgets horizontal (0..HSteps-1)
yValue : " " " vertikal (0..VSteps-1)
*)
(*--------------------------------------------------------------------------*)
PROCEDURE SetPropGadget (GPtr : GadgetPtr;
xValue : CARDINAL;
yValue : CARDINAL);
(* Setzen eines Proportional-Gadgets auf einen bestimmten Wert.
Parameter: GPtr : Zeiger auf PropGadget
xValue : Wert zwischen 0 und HSteps-1
yValue : " " 0 und VSteps-1
*)
(*--------------------------------------------------------------------------*)
PROCEDURE ReadToggleSelect ( GPtr : GadgetPtr;
VAR Selected : BOOLEAN);
(* Abfragen eines ToggleSelect-Boolean-Gadgets.
Parameter: GPtr : Zeiger auf Gadget
Selected : TRUE = angewählt, FALSE = nicht angewählt
*)
(*--------------------------------------------------------------------------*)
PROCEDURE SetToggleSelect (GPtr : GadgetPtr;
Select : BOOLEAN);
(* Setzen eines ToggleSelect-Boolean-Gadgets.
Parameter: GPtr : Zeiger auf Gadget
Select : TRUE = anwählen, FALSE = ausschalten
*)
(*--------------------------------------------------------------------------*)
END Gadgets.